package util;


import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;

//싱글톤 패턴으로 만든다.
public class Utilities {
	// 글목록에서 한페이지에 보여질 글 게시물의 개수
	public static final int CONTENT_PER_PAGE = 2;
	// 한페이지에서 그룹으로 묶을 페이지의 개수
	public static final int PAGE_PER_PAGEGROUP = 4;

	private Utilities() {
	}

	/**
	 * 호출된 시점의 일시를 14자리 String값으로 만들어 return
	 * 예)20120512100524(yyyyMMddHHmmss)14자리
	 * 
	 * @return
	 */
	public static String getNow() {
		SimpleDateFormat sd = new SimpleDateFormat("yyyyMMddHHmmss");
		return sd.format(new Date());

	}
	public static String getNowForMember(){
		Date date = new Date();
		SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
		return format.format(date);
	}

	/**
	 * 인수로 14자리 형태 일시를 받아 날짜만 yyyy.MM.dd형태의 String으로 만들어 return 한다. 목록에서 작성일시를
	 * 보여줄때 사용할 메소드 예)20120512100524 ->2012.05.12
	 * 
	 * @param dateTime
	 * @return
	 */

	public static String changeDayFormat(String dateTime) {
		return dateTime = dateTime.substring(4, 6) + "월" + dateTime.substring(6, 8)+"일";
		// String year = dateTime.substring(0,4)
		// String month = dateTime.substring(4,6)
		// String day = dateTime.substring(6,8)
		// return year+"."+month+"."+day;
	}
	public static String changeDayFormat2(String dateTime) {		
		String month = dateTime.substring(4,6);
		String day = dateTime.substring(6,8);
		return month+"월"+day+"일";
	}

	/**
	 * 인수로 14자리 형태의 일시를 받아 yyyy.MM.dd HH:mm:ss 형태의 String으로 만들어 return 글 상세 보기에서
	 * 사용할 메소드 예)20120512100524 => 2012.05.12.1 10:05:24
	 * 
	 * @param dateTime
	 * @return
	 */
	public static String changeDayTimeFormat(String dateTime) {
		return dateTime.substring(0, 4) + "."
				+ dateTime.substring(4, 6) + "." + dateTime.substring(6, 8)
				+ " " + dateTime.substring(8, 10) + ":"
				+ dateTime.substring(10, 12) + ":" + dateTime.substring(12, 14);

	}

	/**
	 * TextArea에서 입력 받은 글 내용을 HTML로 출력 될 때에 맞는 형식으로 변경하는 메소드 새글 등록, 답변 글 등록, 글
	 * 수정시 사용 > - &gt; < - &lt; \n - <br>
	 * 공백 &nbsp;
	 * 
	 * @param content
	 * @return
	 */
	public static String changeContentForDB(String content) {
		// String newContent = content.replaceall(">","&lt;");
		String newContent = content;
		newContent = newContent.replaceAll("<", "&lt;");
		newContent = newContent.replaceAll(">", "&gt;");
		newContent = newContent.replaceAll("\n", "<br>");
		newContent = newContent.replaceAll(" ", "&nbsp;");
		return newContent;

	}

	/**
	 * DB에 저장된 content를 TextArea에 출력할 형식으로 변경 글 수정폼, 답글 폼 출력시 사용 <br>
	 * - \n &lt; - < &gt; - > &nbsp; - 공백
	 * 
	 * @param content
	 * @return
	 */

	public static String changeContentForTextArea(String content) {
		String newContent = content.replaceAll("<br>", "\n");
		newContent = newContent.replaceAll("&lt;", "<");
		newContent = newContent.replaceAll("&gt;", ">");
		newContent = newContent.replaceAll("&nbsp;", " ");
		return newContent;

	}

}
